# 简单闭包
def outer(logo):
    def inner(msg):
        print(f"<{logo}>{msg}<{logo}>")
    # 返回inner函数
    return inner
fun1 = outer("我的logo")
fun1("msg")

# 使用nonlocal修改外部函数的值
# 银行 init_money：你的账户存款
def account(init_money = 300):
    # 参数：存和取的金钱  type_money：类型 1 存款  2 取款
    def atm(money, type_money=1):
        nonlocal init_money
        print(f"当前账户余额：{init_money}")
        if type_money == 1:
            init_money += money
            print(f"存款：{money}，当前账户余额：{init_money}")
        else:
            init_money -= money
            print(f"取款：{money}，当前账户余额：{init_money}")
        return init_money
    return atm

atm = account()
atm(100)
atm(400)
atm(200, 2)